/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.utrans.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Gamboa
 */
@Entity
@Table(name = "pasajero")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Pasajero.findAll", query = "SELECT p FROM Pasajero p"),
    @NamedQuery(name = "Pasajero.findByCodigoPasajero", query = "SELECT p FROM Pasajero p WHERE p.codigoPasajero = :codigoPasajero"),
    @NamedQuery(name = "Pasajero.findByNombresPasajero", query = "SELECT p FROM Pasajero p WHERE p.nombresPasajero = :nombresPasajero"),
    @NamedQuery(name = "Pasajero.findByApellidosPasajero", query = "SELECT p FROM Pasajero p WHERE p.apellidosPasajero = :apellidosPasajero"),
    @NamedQuery(name = "Pasajero.findByGeneroPasajero", query = "SELECT p FROM Pasajero p WHERE p.generoPasajero = :generoPasajero"),
    @NamedQuery(name = "Pasajero.findByFechaNacimientoPasajero", query = "SELECT p FROM Pasajero p WHERE p.fechaNacimientoPasajero = :fechaNacimientoPasajero"),
    @NamedQuery(name = "Pasajero.findByTelefonoPasajero", query = "SELECT p FROM Pasajero p WHERE p.telefonoPasajero = :telefonoPasajero"),
    @NamedQuery(name = "Pasajero.findByDireccionPasajero", query = "SELECT p FROM Pasajero p WHERE p.direccionPasajero = :direccionPasajero"),
    @NamedQuery(name = "Pasajero.findByCiudadPasajero", query = "SELECT p FROM Pasajero p WHERE p.ciudadPasajero = :ciudadPasajero"),
    @NamedQuery(name = "Pasajero.findByContrasenaPasajero", query = "SELECT p FROM Pasajero p WHERE p.contrasenaPasajero = :contrasenaPasajero"),
    @NamedQuery(name = "Pasajero.findByPreguntaSecreta", query = "SELECT p FROM Pasajero p WHERE p.preguntaSecreta = :preguntaSecreta"),
    @NamedQuery(name = "Pasajero.findByRespuestaSecreta", query = "SELECT p FROM Pasajero p WHERE p.respuestaSecreta = :respuestaSecreta"),
    @NamedQuery(name = "Pasajero.findByEMailPasajero", query = "SELECT p FROM Pasajero p WHERE p.eMailPasajero = :eMailPasajero"),
    @NamedQuery(name = "Pasajero.findByEstadoPasajero", query = "SELECT p FROM Pasajero p WHERE p.estadoPasajero = :estadoPasajero")})
public class Pasajero implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "codigo_pasajero")
    private Integer codigoPasajero;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "nombres_pasajero")
    private String nombresPasajero;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "apellidos_pasajero")
    private String apellidosPasajero;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 4)
    @Column(name = "genero_pasajero")
    private String generoPasajero;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fecha_nacimiento_pasajero")
    @Temporal(TemporalType.DATE)
    private Date fechaNacimientoPasajero;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 10)
    @Column(name = "telefono_pasajero")
    private String telefonoPasajero;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "direccion_pasajero")
    private String direccionPasajero;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "ciudad_pasajero")
    private String ciudadPasajero;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 20)
    @Column(name = "contrasena_pasajero")
    private String contrasenaPasajero;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "pregunta_secreta")
    private String preguntaSecreta;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "respuesta_secreta")
    private String respuestaSecreta;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "e_mail_pasajero")
    private String eMailPasajero;
    @Size(max = 20)
    @Column(name = "estado_pasajero")
    private String estadoPasajero;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "pasajero")
    private List<RecargaTarjeta> recargaTarjetaList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "pasajero")
    private List<AvanceTarjeta> avanceTarjetaList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "pasajero")
    private List<VentaTarjeta> ventaTarjetaList;
    @JoinColumn(name = "codigo_tarjeta_pasajero", referencedColumnName = "codigo_tarjeta")
    @ManyToOne(optional = false)
    private Tarjeta codigoTarjetaPasajero;

    public Pasajero() {
    }

    public Pasajero(Integer codigoPasajero) {
        this.codigoPasajero = codigoPasajero;
    }

    public Pasajero(Integer codigoPasajero, String nombresPasajero, String apellidosPasajero, String generoPasajero, Date fechaNacimientoPasajero, String telefonoPasajero, String direccionPasajero, String ciudadPasajero, String contrasenaPasajero, String preguntaSecreta, String respuestaSecreta, String eMailPasajero) {
        this.codigoPasajero = codigoPasajero;
        this.nombresPasajero = nombresPasajero;
        this.apellidosPasajero = apellidosPasajero;
        this.generoPasajero = generoPasajero;
        this.fechaNacimientoPasajero = fechaNacimientoPasajero;
        this.telefonoPasajero = telefonoPasajero;
        this.direccionPasajero = direccionPasajero;
        this.ciudadPasajero = ciudadPasajero;
        this.contrasenaPasajero = contrasenaPasajero;
        this.preguntaSecreta = preguntaSecreta;
        this.respuestaSecreta = respuestaSecreta;
        this.eMailPasajero = eMailPasajero;
    }

    public Integer getCodigoPasajero() {
        return codigoPasajero;
    }

    public void setCodigoPasajero(Integer codigoPasajero) {
        this.codigoPasajero = codigoPasajero;
    }

    public String getNombresPasajero() {
        return nombresPasajero;
    }

    public void setNombresPasajero(String nombresPasajero) {
        this.nombresPasajero = nombresPasajero;
    }

    public String getApellidosPasajero() {
        return apellidosPasajero;
    }

    public void setApellidosPasajero(String apellidosPasajero) {
        this.apellidosPasajero = apellidosPasajero;
    }

    public String getGeneroPasajero() {
        return generoPasajero;
    }

    public void setGeneroPasajero(String generoPasajero) {
        this.generoPasajero = generoPasajero;
    }

    public Date getFechaNacimientoPasajero() {
        return fechaNacimientoPasajero;
    }

    public void setFechaNacimientoPasajero(Date fechaNacimientoPasajero) {
        this.fechaNacimientoPasajero = fechaNacimientoPasajero;
    }

    public String getTelefonoPasajero() {
        return telefonoPasajero;
    }

    public void setTelefonoPasajero(String telefonoPasajero) {
        this.telefonoPasajero = telefonoPasajero;
    }

    public String getDireccionPasajero() {
        return direccionPasajero;
    }

    public void setDireccionPasajero(String direccionPasajero) {
        this.direccionPasajero = direccionPasajero;
    }

    public String getCiudadPasajero() {
        return ciudadPasajero;
    }

    public void setCiudadPasajero(String ciudadPasajero) {
        this.ciudadPasajero = ciudadPasajero;
    }

    public String getContrasenaPasajero() {
        return contrasenaPasajero;
    }

    public void setContrasenaPasajero(String contrasenaPasajero) {
        this.contrasenaPasajero = contrasenaPasajero;
    }

    public String getPreguntaSecreta() {
        return preguntaSecreta;
    }

    public void setPreguntaSecreta(String preguntaSecreta) {
        this.preguntaSecreta = preguntaSecreta;
    }

    public String getRespuestaSecreta() {
        return respuestaSecreta;
    }

    public void setRespuestaSecreta(String respuestaSecreta) {
        this.respuestaSecreta = respuestaSecreta;
    }

    public String getEMailPasajero() {
        return eMailPasajero;
    }

    public void setEMailPasajero(String eMailPasajero) {
        this.eMailPasajero = eMailPasajero;
    }

    public String getEstadoPasajero() {
        return estadoPasajero;
    }

    public void setEstadoPasajero(String estadoPasajero) {
        this.estadoPasajero = estadoPasajero;
    }

    @XmlTransient
    public List<RecargaTarjeta> getRecargaTarjetaList() {
        return recargaTarjetaList;
    }

    public void setRecargaTarjetaList(List<RecargaTarjeta> recargaTarjetaList) {
        this.recargaTarjetaList = recargaTarjetaList;
    }

    @XmlTransient
    public List<AvanceTarjeta> getAvanceTarjetaList() {
        return avanceTarjetaList;
    }

    public void setAvanceTarjetaList(List<AvanceTarjeta> avanceTarjetaList) {
        this.avanceTarjetaList = avanceTarjetaList;
    }

    @XmlTransient
    public List<VentaTarjeta> getVentaTarjetaList() {
        return ventaTarjetaList;
    }

    public void setVentaTarjetaList(List<VentaTarjeta> ventaTarjetaList) {
        this.ventaTarjetaList = ventaTarjetaList;
    }

    public Tarjeta getCodigoTarjetaPasajero() {
        return codigoTarjetaPasajero;
    }

    public void setCodigoTarjetaPasajero(Tarjeta codigoTarjetaPasajero) {
        this.codigoTarjetaPasajero = codigoTarjetaPasajero;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codigoPasajero != null ? codigoPasajero.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Pasajero)) {
            return false;
        }
        Pasajero other = (Pasajero) object;
        if ((this.codigoPasajero == null && other.codigoPasajero != null) || (this.codigoPasajero != null && !this.codigoPasajero.equals(other.codigoPasajero))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.utrans.entity.Pasajero[ codigoPasajero=" + codigoPasajero + " ]";
    }
    
}
